package com.his.struts.dao.users;

import java.sql.ResultSet;
import java.util.List;

import com.his.struts.form.DiseaseForm;
import com.his.struts.form.DoctorForm;
import com.his.struts.form.InHisDiseaseForm;
import com.his.struts.form.UserForm;
import com.his.struts.form.ZydiseaseForm;
/**
 * 用户接口类
 * @author xiaoweiliang
 *
 */
public interface UsersDao {
	/**
	 * 用户登陆
	 * @param name 姓名
	 * @param pass 密码
	 * @return 是否成功
	 */
	public  boolean login(String name ,String pass);
	/**
	 * 医生登陆
	 * @param name 姓名
	 * @param pass 密码
	 * @return 是否成功
	 */
	public  boolean docLogin(String name ,String pass);
	
	/**
	 * 注册
	 * @param users 注册信息
	 * @return boolean 是否注册成功
	 */
	public  boolean regedit(UserForm users);
	/**
	 * 取医生首页信息
	 * @param ysname 医生名
	 * @return DoctorForm
	 */
	public DoctorForm docIndex(String ysname);
	/**
	 * 取用户首页信息
	 * @param username 用户名
	 * @return UserForm
	 */
	public UserForm userIndex(String username);
	/**
	 * 取用户ID
	 * @param name 用户名
	 * @return ID
	 */
	public int getuid(String name);
	/**
	 * 取医生ID
	 * @param name 用户名
	 * @return ID
	 */
	public int getDocid(String name);
	/**
	 * 取一个用户所有门诊病历
	 * @param uid 用户ID
	 * @return List 集合
	 */
	public List<DiseaseForm> allDisease(int uid);
	/**
	 * 取一个门诊病历的信息
	 * @param caseid 门诊号
	 * @return DiseaseForm
	 */
	public DiseaseForm oneDisease(int caseid);
	
	/**
	 * 检查用户名
	 * @param userName 用户名
	 * @return Boolean 是否存在
	 */
	public boolean checkUserName(String userName);
	/**
	 * 取用户住院病历
	 * @param rs ResultSet 
	 * @return List<InHisDiseaseForm>
	 */
	public List<InHisDiseaseForm> getAllInHisDisease(ResultSet rs);
	/**
	 * 所有中医病历
	 * @param uid 用户id
	 * @return List<ZydiseaseForm>
	 */
	public List<ZydiseaseForm> allzyDisease(ResultSet rs);
	/**
	 * 删除中医病历
	 * @param zyid 中医病历号
	 */
	public void deletezyDisease(int zyid);
	
	
	UserForm adminLogin(String name);
	/**
	 * 封装医生看过的所有病人
	 * @param rs 医生看过的所有病人
	 * @return 医生看过的病人
	 */
	public List<DiseaseForm> getBean(ResultSet rs);
	/**
	 * 更新病人资料
	 * @param diseaseForm 需要更新的所有数据
	 * @return 更新条数
	 */
	public int updateDisease(DiseaseForm diseaseForm);
	/**
	 * 得到所有用户
	 * @param rs 所有用户游标
	 * @return 所有用户 
	 */
	
	public List<UserForm> getUserBean(ResultSet rs);
	
	/**
	 * 删除用户
	 * @param uid 用户id
	 */
	public void deleteUser(int uid);
	
	/**
	 * 删除病例
	 * @param id 病例id
	 */
	public void deleteDesease(int id);
	public void deleteInHidDesease(int id);
	/**
	 * 得到所有医生
	 * @return List<DoctorForm>医生集合
	 */
	public List<DoctorForm> getDocBean(ResultSet rs);
	/**
	 * 删除医生
	 * @param did医生id
	 * @return boolean
	 */
	public boolean  delDoc(int did);
	/**
	 * 添加医生
	 * @param form
	 * @return boolean
	 */
	public boolean addDoc(DoctorForm form);
	/**
	 * 更新医生
	 * @param form
	 * @return boolean
	 */
	public boolean updateDoc(DoctorForm form);
	/**
	 * 更新医生资料
	 * @param doctorInfo 医生资料
	 */
	public void updateDoctorInfo(DoctorForm doctorInfo);
	
	/**
	 * 更新用户资料
	 * @param doctorInfo 医生资料
	 */
	public void updateUserInfo(UserForm userInfo);
	/**
	 * 得到所有医生
	 * @return List<DoctorForm>医生集合
	 */
	public List<DoctorForm> allDoc();
	/**
	 *添加一个门诊病历
	 * @param uid 用户ID
	 * @return List 集合
	 */
	public boolean addDisease(DiseaseForm df);
	/**
	 * 添加住院病历
	 * @param idf InHisDiseaseForm
	 * @return 是否添加成功
	 */
	public boolean addInHisDisease(InHisDiseaseForm idf,int k);
	/**
	 * 添加中医病历
	 * @param zyid 中医病历号
	 */
	public boolean addzyDisease(ZydiseaseForm zdf,int k);
	/**
	 * 得到一个住院病历
	 * @param ihid 住院号
	 * @return InHisDiseaseForm
	 */
	public InHisDiseaseForm getInHisDisease(int ihid);
	/**
	 * 编辑一个住院病历
	 * @param InHisDiseaseForm 
	 * @return boolean
	 */
	public boolean editInHisDisease(InHisDiseaseForm ihdf);
	/**
	 * 得到一个中医病历
	 * @param zyid 
	 * @return ZydiseaseForm
	 */
	public ZydiseaseForm getZyDisease(int zyid);
	/**
	 * 编辑一个中医病历
	 * @param InHisDiseaseForm 
	 * @return boolean
	 */
	public boolean editZyDisease(ZydiseaseForm zdf);
	
	/**
	 * 取医生名字
	 * @param docid 医生ID
	 * @return 医生名
	 */
	public String getDocname(int docid);
}
